home *** CD-ROM | disk | FTP | other *** search
- @(#) Okami Microshell 1.4
-
- Okami Shell Version 1.4
-
-
-
- Okami Microshell
- Version 1.5
-
-
- von Wolfram Rösler ... Public Domain
-
-
-
- Zum Lieferumfang der Okami-Shell gehört eine Mini-Shell, deren Aufgabe
- es ist, die Hauptshell aufzurufen. Die Notwendigkeit dazu ergibt sich aus
- dem folgenden Dilemma:
-
- ! Damit von der Shell aus GEM-Programme gestartet werden können,
- muß die Shell vom Desktop aus als PRG gestartet werden.
- ! Die Shell lädt die Datei profile nur dann, wenn ihr als Parameter ein
- Minuszeichen übergeben wird (Login-Shell, wie in Unix).
- ! Beim Aufruf vom Desktop als PRG ist die Eingabe eines Parameters
- nicht vorgesehen
- ! Also kann man keine Login-Shell aufrufen, von der der Start von
- GEM-Programmen möglich ist.
-
- Zu diesem Zweck gibt es die Microshell, die, wenn sie als PRG aufgeru-
- fen wird und dann ihrerseits die Okami-Shell aufruft, den Start von GEM-
- Programmen ermöglicht.
-
- Die Microshell erfüllt allerdings nicht nur diesen Zweck, sondern sie ist
- ein Werkzeug zur Kontrolldatei-gesteuerten Ausführung mehrerer Program-
- me mit jeweiligen Parametern. Dazu wird eine Datei angelegt, in der die
- Namen der aufzurufenden Programme und die zu übergebenden Parameter
- angeführt sind. Das macht die Microshell tatsächlich zu einer kleineren
- Version einer Shell, die zwar nicht interaktiv arbeitet, aber trotzdem in
- der Lage ist, z.B. einen Compiler oder Linker aufzurufen und das Ergeb-
- nis anschließend zu starten.
- Die Microshell ist also ein vollwertiger Batch-Prozessor, der seine eige-
- nen Shellscripts (die eine Untermenge der Okami-Shellscripts darstellen)
- hat und für die vielfältigsten Aufgaben eingesetzt werden kann (natürlich
- auch vollkommen unabhängig von dem restlichen Okami-System).
-
- Die Batch- oder Kontrolldateien, die von der Microshell benutzt werden,
- werden als MSH-Scripts bezeichnet.
-
-
- Die Microshell befindet sich in der Datei msh.prg. Der Quellcode der Mi-
- croshell gehört zum Lieferumfang und befindet sich in der Datei msh.c.
-
- Nach dem Start der Microshell als MSH.PRG wird als MSH-Script die
- Datei msh.inf im aktuellen Directoy benutzt.
- Wenn die Microshell als MSH.TTP oder von der Okami-Shell aus aufgeru-
- fen wird, ist die Eingabe einer Kommandozeile möglich, die folgender
- Syntax folgt:
-
- { Dateiname } [-c { Kommandos }]
-
-
- Die angegebenen Dateien werden als MSH-Scripts ausgeführt. Wenn nach
- -c Kommandos angegeben sind, werden diese direkt ausgeführt. Dies kön-
- nen die Namen von zu startenden Programmen, aber auch interne Kom-
- mandos der Microshell sein.
- ACHTUNG: Jeder Parameter stellt dabei ein vollständiges Kommando dar.
- Bei dem Aufruf
-
- msh -c echo hallo
-
- werden zwei Kommandos, nämlich "echo" und "hallo", übergeben. Um das
- Kommando "echo hallo" ausführen zu lassen, muß der Aufruf so ausse-
- hen:
-
- msh -c "echo hallo"
-
-
- Die einzelnen Zeilen eines Scripts haben folgende Bedeutung:
-
- 1) Führende und endende Whitespace-Zeichen (Leerzeichen, Tabs, Newli-
- nes etc.) werden ignoriert.
- 2) Leerzeilen und Zeilen, die mit einem '#' (Doppelkreuz) beginnen, gelten
- als Kommentarzeilen.
- 3) Alle Zeilen, die keine Kommentarzeilen sind, können als letztes Zei-
- chen einen Backslash (\) erhalten, dann wird die darauf folgende Zeile an
- diese Zeile angehängt.
- 4) Wenn eine Zeile nur aus einem Pluszeichen besteht, wird der Kom-
- mentarmodus eingeschaltet. Im Kommentarmodus wird der Name und die
- Parameter jedes aufgerufenen Programmes auf dem Bildschirm ausgege-
- ben. (Gilt nicht für interne Kommandos.) Nach dem Start der Microshell
- ist der Kommentarmodus eingeschaltet.
- 5) Wenn eine Zeile nur aus einem Minuszeichen besteht, wird der Kom-
- mentarmodus abgeschaltet.
- 6) Allen anderen Zeilen werden in der Form
- Kommando Parameter
- interpretiert. Das Kommando ist dabei entweder der Name eines internen
- Kommandos oder der Dateiname eines auszuführenden Programms.
-
-
- Folgende interne Kommandos sind vorhanden:
-
- exit das augenblickliche MSH-Script wird beendet.
- echo gibt den String `Parameter' auf dem Bildschirm aus.
- Der String darf Steuersequenzen enthalten, siehe unten.
- incl führt die als Parameter angegebene Datei als MSH-
- Script aus. Die maximale Schachtelungstiefe von incl-
- anweisungen ist nur durch den verfügbaren Speicher und
- die Maximalanzahl gleichzeitig offener Dateien be-
- grenzt.
- ver gibt die Versionsnummer der Microshell und den Kompi-
- lierungszeitpunkt aus.
- wait wartet auf Tastendruck oder Datum/Uhrzeit. Siehe unten.
-
- Bei allen anderen Kommandos wird die als Kommando angegebene Datei
- ausgeführt, wobei der als Parameter angegebene String als Kommandozei-
- le übergeben wird.
- Es empfiehlt sich, den vollen Dateinamen anzugeben (was aber nicht im-
- mer unbedingt notwendig ist.)
-
-
- Steuersequenzen des echo-Kommandos:
- \n Newline
- \t Tabulator
- \b Backspace
- \\ Backslash
- \^ Zirkumflex
- \c (am Stringende) verhindert Zeilenvorschub
- ^x erzeugt das Zeichen mit Ascii-Code x-'A'+1. Hierbei ist
- x ein beliebiges Zeichen.
-
- Beispiele:
-
- echo Das ist eine Zeile \n und das ist die nächste.
- echo Das ist eine Zeile \c
- echo und das ist dieselbe.
- echo Der folgende Text: ^[p ist invers durch eine \c
- echo VT52-Steuersequenz. ^[q
- echo Man kann Backslashes: \\ und Zirkumflexe: \^ ausgeben.
- echo Ebenso kann man klingeln: ^G
-
-
- Benutzung des wait-Kommandos:
-
- Das interne Kommando wait kann auf zwei Arten aufgerufen werden.
-
- wait key
-
- In dieser Form wartet msh auf einen Tastendruck. Bei Druck auf ESC
- wird das aktuelle Script beendet, bei jeder anderen Taste wird es fortge-
- setzt.
-
- wait ttmmjj HHMMSS [Text ]
-
- In dieser Form wartet msh bis zu einem angegeben Datum und Uhrzeit.
- Wenn anstelle von ttmmjj ein Stern (*) steht, wartet msh nur bis zu der
- angegebenen Uhrzeit. Wenn der Protokollmodus aktiv ist, gibt msh folgen-
- de Zeile aus:
- Waiting for Text... press ESC to abort
- Als Text steht hier der entsprechende Parameter von wait. Wenn kein
- Text angegeben ist, entfällt die Ausgabe von "for Text".
- Achtung: ttmmjj und HHMMSS müssen immer in dieser Form geschrieben
- werden, d.h. durch genau ein Leerzeichen getrennt; alle Zahlen müssen
- zweistellig angegeben sein. msh testet nicht auf Plausibilität; "wait 999999
- 999999" wartet endlos. (Ist halt eben eine "Micro"-Shell.)
-
-
- Die Microshell macht keinen Gebrauch von evtl. definierten Environment-
- Variablen, gibt diese aber an alle gestarteten Programme unverändert
- weiter.
-
-
- Beispiel 1: das MSH-Script zum Start der Okami-Shell
-
- # Microshell Kontrolldatei für Okami-Shell
- -
- echo Aufruf der Okami-Shell
- sh.ttp -
-
-
- Es wird die Okami-Shell als Login-Shell (mit dem Parameter "-") aufgeru-
- fen. Vor dem Aufruf der Shell wird die Meldung "Aufruf der Okami-Shell"
- auf den Bildschirm geschrieben.
-
-
- Beispiel 2: ein komplizierteres Script
-
-
- # Demo-Script für die Microshell
- -
- ver
- echo Das ist ein MSH-Script
-
- echo Aufruf des Compilers
- d:\compiler\cc.ttp e:\source\test1.c e:\source\test2.c \
- e:source\test3.c -o e:\bin\test.tos
-
- # Ausführen eines anderen Scripts
- incl e:\bin\mshdemo.msh
-
- # Aufruf der Okami-Shell
- echo Plattenbelegung von Laufwerk E:
- e:\bin\sh.ttp df E: ; echo ENTER: ; read
-
-
- Neben Kommentaren und Ausgabeanweisungen (echo) wird der Compiler
- (in der Datei d:\compiler\cc.ttp) mit einer über zwei Zeilen gehenden Pa-
- rameterliste aufgerufen. Danach wird eine weiteres Script
- (e:\bin\mshdemo.msh) ausgeführt und durch Aufruf der Okami-Shell die
- Belegung von Partition E: ausgegeben und auf einen Tastendruck gewar-
- tet.
-
-
- Beispiel 3: Starten eines Mailbox-Poll-Programms zu einer bestimmten
- Zeit
-
- wait * 023000 Poll time
- c:/bin/poll.ttp
- d:/okami/sh.ttp shutdown -rf
-
- Dieses MSH-Script wartet bis 2.30 Uhr und startet dann das Programm
- c:/bin/poll.ttp . Danach ruft es die Okami-Shell auf, um einen Reset
- durchzuführen. Das MSH-Script sollte also so installiert werden, daß es
- nach dem Systemstart sofort ausgeführt wird.
- Während der Wartezeit erscheint die Meldung "Waiting for Poll ti-
- me... press ESC to abort". Wenn der Anwender währenddessen die ESC-
- Taste drückt, wird das Script abgebrochen.
-
-
- Die Microshell kann auch anstelle des Auto-Ordners benutzt werden. Da-
- zu kopiert man sich alle Programme, die beim Systemstart geladen wer-
- den sollen, in einen eigenen Ordner, z.B. in den Ordner c:\startup. In den
- eigentlichen Auto-Ordner kopiert man nur die Datei msh.prg. Unter dem
- Namen c:\msh.inf wird eine Datei angelegt, die die Namen der zu star-
- tenden Programme in der gewünschten Reihenfolge enthält. (Im einfach-
- sten Fall erzeugt man diese Datei von der Okami-Shell aus mit dem
- Kommando:
- ls -nk c:\startup\*.prg >c:\msh.inf
-
- Dann ist die Wirkung dieselbe wie beim Aufruf aus dem Auto-Ordner.)
- Außerdem kann die inf-Datei Kommentare und echo-Zeilen erhalten. Na-
- türlich ist von der Microshell aus auch der Aufruf von Programmen aus
- beliebigen anderen Ordnern möglich.
- WICHTIG: die Datei msh.inf muß bei dieser Verwendung im Wurzelver-
- zeichnis von C: liegen und nicht im Auto-Ordner, da beim Systemstart das
- Wurzelverzeichnis das aktuelle Directory ist, auch bei der Ausführung der
- Programme im Auto-Ordner.
-
-